package chemtools_logica.LN.SFBean;

import chemtools_logica.BDL.IR.BDL_SFRolRemote;

import chemtools_logica.Beans.RolBean;

import chemtools_logica.Entidades.Rol;

import chemtools_logica.LN.IL.LN_SFRolLocal;
import chemtools_logica.LN.IR.LN_SFRolRemote;

import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import javax.ejb.EJB;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;

import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless(name = "LN_SFRol", mappedName = "map-LN_SFRol")
public class LN_SFRolBean implements LN_SFRolRemote, LN_SFRolLocal {
    @Resource
    SessionContext sessionContext;
    @PersistenceContext(unitName = "Chemtools_Logica")
    private EntityManager em;
    @EJB
    BDL_SFRolRemote bDL_SFRolRemote;

    public LN_SFRolBean() {
    }

    public Rol persistRol(RolBean rol) {
        return bDL_SFRolRemote.persistRol(beanxRol(rol));
    }

    public Rol mergeRol(RolBean rol) {
        return bDL_SFRolRemote.mergeRol(beanxRol(rol));
    }

    public void removeRol(Rol rol) {
    }

   
    public List<Rol> getRolFindAll() {
        return bDL_SFRolRemote.getRolFindAll();
    }
    
    public List<RolBean> buscarRol(RolBean r){
          return  listEntxBean(bDL_SFRolRemote.buscarRol(beanxRol(r)));
        }
    public List<RolBean> buscarRolExacto(RolBean r){
            return  listEntxBean(bDL_SFRolRemote.buscarRolExacto(beanxRol(r)));
        }
    public List<RolBean> existeNombreRol(RolBean r){
            return  listEntxBean(bDL_SFRolRemote.existeNombreRol(beanxRol(r)));
        }

    private Rol beanxRol(RolBean r) {
        Rol rol=new Rol();
        rol.setIdRol(r.getIdRol());
        rol.setNombre(r.getNombre());
        rol.setEstado(r.getEstado());
        return rol;
    }

    private List<RolBean> listEntxBean(List<Rol> rol) {
        List<RolBean> lista=new ArrayList<RolBean>();
        for(Rol r:rol){
            lista.add(entidadxBean(r));
            }
        return lista;
    }

    private RolBean entidadxBean(Rol r) {
        RolBean rb=new RolBean();
        rb.setIdRol(r.getIdRol());
        rb.setNombre(r.getNombre());
        rb.setEstado(r.getEstado());
        return rb;
    }
}
